	list	p=pic16f84a, r=dec
	org	0
	goto	_start
	org	4
	goto	interrupt
_STATUS	equ	3
_C	equ	0
_Z	equ	2
_PCL	equ	2
_PCLATH	equ	10
_TMR0	equ	1
_INTCON	equ	11
_OPTION	equ	129
Math16_static	equ	18
StrBufTest_static	equ	28
PIC16F84_static	equ	28
Processor_static	equ	28
_Str_static	equ	28
Math16_aLo	equ	18
Math16_aHi	equ	19
Math16_bLo	equ	20
Math16_bHi	equ	21
Math16_cLo	equ	22
Math16_cHi	equ	23
Math16_dLo	equ	24
Math16_dHi	equ	25
Math16_temp	equ	26
Math16_flags	equ	27
PIC16F84__PORTA	equ	28
PIC16F84__PORTB	equ	28
PIC16F84__EEDATA	equ	28
PIC16F84__EEADR	equ	28
PIC16F84__TRISA	equ	28
PIC16F84__TRISB	equ	28
PIC16F84__EECON1	equ	28
PIC16F84__EECON2	equ	28
PIC16F84__C	equ	28
PIC16F84__Z	equ	28
PIC16F84__W	equ	28
PIC16F84__F	equ	28
PIC16F84__TMR0	equ	28
PIC16F84__PCL	equ	28
PIC16F84__STATUS	equ	28
PIC16F84__FSR	equ	28
PIC16F84__PCLATH	equ	28
PIC16F84__INTCON	equ	28
PIC16F84__OPTION	equ	28
_Str_buffer	equ	0
_Str_slen	equ	1
_Str_length	equ	2
_Str_x	equ	28
Math16__init___V_loc	equ	30
Math16__init___V_tmp	equ	31
Math16_add__V_loc	equ	30
Math16_add__V_tmp	equ	30
Math16_mul__V_loc	equ	30
Math16_mul__V_tmp	equ	30
Math16_setup__V_loc	equ	30
Math16_setup__V_tmp	equ	30
Math16_div__V_loc	equ	30
Math16_div__V_tmp	equ	30
StrBufTest__init___V_loc	equ	30
StrBufTest__init___V_tmp	equ	31
StrBufTest_main_Str_loc	equ	30
StrBufTest_main_Str_tmp	equ	34
StrBufTest_stop__V_loc	equ	30
StrBufTest_stop__V_tmp	equ	30
PIC16F84__setMemory_II_V_loc	equ	30
PIC16F84__setMemory_II_V_tmp	equ	32
PIC16F84__getMemory_I_I_loc	equ	30
PIC16F84__getMemory_I_I_tmp	equ	31
PIC16F84__setBit_II_V_loc	equ	30
PIC16F84__setBit_II_V_tmp	equ	32
PIC16F84__clearBit_II_V_loc	equ	30
PIC16F84__clearBit_II_V_tmp	equ	32
PIC16F84__asm_Str_loc	equ	37
PIC16F84__asm_Str_tmp	equ	38
PIC16F84__initline_Str_loc	equ	30
PIC16F84__initline_Str_tmp	equ	31
PIC16F84__clock_I_V_loc	equ	30
PIC16F84__clock_I_V_tmp	equ	31
PIC16F84__delay_I_V_loc	equ	30
PIC16F84__delay_I_V_tmp	equ	31
PIC16F84__heap_I_V_loc	equ	30
PIC16F84__heap_I_V_tmp	equ	31
PIC16F84__memory_II_V_loc	equ	30
PIC16F84__memory_II_V_tmp	equ	32
PIC16F84__banksize_I_V_loc	equ	30
PIC16F84__banksize_I_V_tmp	equ	31
PIC16F84__genlabel__V_loc	equ	30
PIC16F84__genlabel__V_tmp	equ	30
PIC16F84__getlabelhigh__I_loc	equ	30
PIC16F84__getlabelhigh__I_tmp	equ	30
PIC16F84__getlabellow__I_loc	equ	30
PIC16F84__getlabellow__I_tmp	equ	30
PIC16F84__printlabel__V_loc	equ	30
PIC16F84__printlabel__V_tmp	equ	30
PIC16F84__init___V_loc	equ	32
PIC16F84__init___V_tmp	equ	33
Processor__init___V_loc	equ	37
Processor__init___V_tmp	equ	38
_Str__init__I_V_loc	equ	39
_Str__init__I_V_tmp	equ	41
_Str_clear__V_loc	equ	30
_Str_clear__V_tmp	equ	31
_Str_length__I_loc	equ	30
_Str_length__I_tmp	equ	31
_Str_strlen__I_loc	equ	30
_Str_strlen__I_tmp	equ	31
_Str_charAt_I_I_loc	equ	30
_Str_charAt_I_I_tmp	equ	32
_Str_append_Str_loc	equ	37
_Str_append_Str_tmp	equ	39
_Str_append_I_V_loc	equ	37
_Str_append_I_V_tmp	equ	40
_Str_append_J_V_loc	equ	30
_Str_append_J_V_tmp	equ	33
_Str_append_C_V_loc	equ	30
_Str_append_C_V_tmp	equ	32
_FSR_TEMP	equ	12
_ACC	equ	13
_HEAP	equ	14
_ACC_TEMP	equ	15
_STATUS_TEMP	equ	16
_W_TEMP	equ	17
_start
	movlw	79
	movwf	_HEAP
	goto	main
clockspeed	equ	4000000
; tmr0 count = 250
tmr0_for_1ms	equ	6
; prescaler = 4
set_prescaler_for_1ms	macro
	bcf	_OPTION,2
	bcf	_OPTION,1
	bsf	_OPTION,0
	endm

Math16__init___V
;---- Math16.java[1]
	movf	Math16__init___V_loc+0,0
	movwf	Processor__init___V_loc+0
	IF ($ >> 10) != (Processor__init___V >> 10)
	pagesel	Processor__init___V
	ENDIF
	call	Processor__init___V
	return

;---- *** Message: Method Math16_add__V not used. No code generated.

;---- *** Message: Method Math16_mul__V not used. No code generated.

Math16_setup__V
;---- Math16.java[39]
  movlw   16
;---- Math16.java[40]
	movwf   Math16_temp
;---- Math16.java[41]
	movf    Math16_bHi,0
;---- Math16.java[42]
	movwf   Math16_dHi
;---- Math16.java[43]
	movf    Math16_bLo,0
;---- Math16.java[44]
	movwf   Math16_dLo
;---- Math16.java[45]
	clrf    Math16_bHi
;---- Math16.java[46]
	clrf    Math16_bLo
;---- Math16.java[47]
	return

Math16_div__V
;---- Math16.java[50]
	call    Math16_setup__V
;---- Math16.java[51]
	clrf    Math16_cHi
;---- Math16.java[52]
	clrf    Math16_cLo
;---- Math16.java[53]
Math16_dloop   bcf     _STATUS,_C
;---- Math16.java[54]
	rlf     Math16_dLo,1
;---- Math16.java[55]
	rlf     Math16_dHi,1
;---- Math16.java[56]
	rlf     Math16_cLo,1
;---- Math16.java[57]
	rlf     Math16_cHi,1
;---- Math16.java[58]
	movf    Math16_aHi,0
;---- Math16.java[59]
	subwf   Math16_cHi,0
;---- Math16.java[60]
	btfss   _STATUS,_Z
;---- Math16.java[61]
	goto    Math16_nochk
;---- Math16.java[62]
	movf    Math16_aLo,0
;---- Math16.java[63]
	subwf   Math16_cLo,0
;---- Math16.java[64]
Math16_nochk   btfss   _STATUS,_C
;---- Math16.java[65]
	goto    Math16_nogo
;---- Math16.java[66]
	movf    Math16_aLo,0
;---- Math16.java[67]
	subwf   Math16_cLo,1
;---- Math16.java[68]
	btfss   _STATUS,_C
;---- Math16.java[69]
	decf    Math16_cHi,1
;---- Math16.java[70]
	movf    Math16_aHi,0
;---- Math16.java[71]
	subwf   Math16_cHi,1
;---- Math16.java[72]
	bsf     _STATUS,_C
;---- Math16.java[73]
Math16_nogo    rlf     Math16_bLo,1
;---- Math16.java[74]
	rlf     Math16_bHi,1
;---- Math16.java[75]
	decfsz  Math16_temp,1
;---- Math16.java[76]
	goto    Math16_dloop
;---- Math16.java[77]
	return

StrBufTest__init___V
;---- StrBufTest.java[1]: public class StrBufTest extends Processor {
	movf	StrBufTest__init___V_loc+0,0
	movwf	Processor__init___V_loc+0
	IF ($ >> 10) != (Processor__init___V >> 10)
	pagesel	Processor__init___V
	ENDIF
	call	Processor__init___V
	return

StrBufTest_main_Str
main
;---- StrBufTest.java[4]: 	StringBuffer s = new StringBuffer(12);
	movlw	3
	subwf	_HEAP,1
	movf	_HEAP,0
	movwf	StrBufTest_main_Str_tmp+0
	movf	StrBufTest_main_Str_tmp+0,0
	movwf	_Str__init__I_V_loc+0
	movlw	12                                 ; const
	movwf	_Str__init__I_V_loc+1
	IF ($ >> 10) != (_Str__init__I_V >> 10)
	pagesel	_Str__init__I_V
	ENDIF
	banksel	_ACC
	call	_Str__init__I_V
	movf	StrBufTest_main_Str_tmp+0,0
	movwf	StrBufTest_main_Str_loc+1
;---- StrBufTest.java[5]: 	long a = 23456L;
	movlw	160
	movwf	StrBufTest_main_Str_loc+3
	movlw	91
	movwf	StrBufTest_main_Str_loc+2
;---- StrBufTest.java[7]: 	s.append(123);
	movf	StrBufTest_main_Str_loc+1,0
	movwf	_Str_append_I_V_loc+0
	movlw	123                                ; const
	movwf	_Str_append_I_V_loc+1
	IF ($ >> 10) != (_Str_append_I_V >> 10)
	pagesel	_Str_append_I_V
	ENDIF
	call	_Str_append_I_V
;---- StrBufTest.java[8]: 	s.append(" foo");
	movf	StrBufTest_main_Str_loc+1,0
	movwf	4
	movf	0,0
	incf	4,1
	addwf	0,0
	movwf	4
	movlw	' '
	movwf	0
	incf	4,1
	movlw	'f'
	movwf	0
	incf	4,1
	movlw	'o'
	movwf	0
	incf	4,1
	movlw	'o'
	movwf	0
	incf	4,1
	movf	StrBufTest_main_Str_loc+1,0
	movwf	4
	incf	4,1
	movlw	4
	addwf	0,1
;---- StrBufTest.java[9]: 	s.append(" bar");
	movf	StrBufTest_main_Str_loc+1,0
	movwf	4
	movf	0,0
	incf	4,1
	addwf	0,0
	movwf	4
	movlw	' '
	movwf	0
	incf	4,1
	movlw	'b'
	movwf	0
	incf	4,1
	movlw	'a'
	movwf	0
	incf	4,1
	movlw	'r'
	movwf	0
	incf	4,1
	movf	StrBufTest_main_Str_loc+1,0
	movwf	4
	incf	4,1
	movlw	4
	addwf	0,1
;---- StrBufTest.java[11]: 	stop();
	IF ($ >> 10) != (StrBufTest_stop__V >> 10)
	pagesel	StrBufTest_stop__V
	ENDIF
	call	StrBufTest_stop__V
;---- StrBufTest.java[13]: 	for (;;) _asm("    clrwdt");
	IF ($ >> 10) != (StrBufTest_main_Str_38 >> 10)
	pagesel	StrBufTest_main_Str_38
	ENDIF
	goto	StrBufTest_main_Str_38
StrBufTest_main_Str_38
    clrwdt
	IF ($ >> 10) != (StrBufTest_main_Str_38 >> 10)
	pagesel	StrBufTest_main_Str_38
	ENDIF
	goto	StrBufTest_main_Str_38

StrBufTest_stop__V
;---- StrBufTest.java[17]:     }
	return

PIC16F84__init___V
;---- PIC16F84.java[69]
;---- PIC16F84.java[70]
;---- PIC16F84.java[72]
;---- PIC16F84.java[73]
;---- PIC16F84.java[74]
;---- PIC16F84.java[75]
;---- PIC16F84.java[77]
;---- PIC16F84.java[78]
;---- PIC16F84.java[79]
;---- PIC16F84.java[80]
;---- PIC16F84.java[81]
;---- PIC16F84.java[83]
;---- PIC16F84.java[84]
;---- PIC16F84.java[85]
;---- PIC16F84.java[87]
;---- PIC16F84.java[88]
;---- PIC16F84.java[89]
;---- PIC16F84.java[90]
	return

Processor__init___V
;---- Processor.java[1]
	movf	Processor__init___V_loc+0,0
	movwf	PIC16F84__init___V_loc+0
	IF ($ >> 10) != (PIC16F84__init___V >> 10)
	pagesel	PIC16F84__init___V
	ENDIF
	call	PIC16F84__init___V
	return

_Str__init__I_V
;---- StringBuffer.java[7]
	movf	_Str__init__I_V_loc+0,0
	movwf	Processor__init___V_loc+0
	IF ($ >> 10) != (Processor__init___V >> 10)
	pagesel	Processor__init___V
	ENDIF
	call	Processor__init___V
;---- StringBuffer.java[8]
	movf	_Str__init__I_V_loc+1,0
	subwf	_HEAP,1
	movf	_HEAP,0
	movwf	_Str__init__I_V_tmp+0
	movf	_Str__init__I_V_loc+0,0
	addlw	_Str_buffer                        ; add field offset
	movwf	4
	movf	_Str__init__I_V_tmp+0,0
	movwf	0                                  ; putfield
;---- StringBuffer.java[9]
	movf	_Str__init__I_V_loc+0,0
	addlw	_Str_length                        ; add field offset
	movwf	4
	movf	_Str__init__I_V_loc+1,0
	movwf	0                                  ; putfield
;---- StringBuffer.java[10]
	movf	_Str__init__I_V_loc+0,0
	addlw	_Str_slen                          ; add field offset
	movwf	4
	movlw	0
	movwf	0                                  ; putfield
;---- StringBuffer.java[11]
	return

;---- *** Message: Method _Str_clear__V not used. No code generated.

;---- *** Message: Method _Str_length__I not used. No code generated.

;---- *** Message: Method _Str_strlen__I not used. No code generated.

;---- *** Message: Method _Str_charAt_I_I not used. No code generated.

_Str_append_Str
;---- StringBuffer.java[31]
	return

_Str_append_I_V
;---- StringBuffer.java[36]
	movlw	100
	movwf	Math16_aLo
	movf	_Str_append_I_V_loc+1,0
	movwf	Math16_bLo
	clrf	Math16_aHi
	clrf	Math16_bHi
	IF ($ >> 10) != (Math16_div__V >> 10)
	pagesel	Math16_div__V
	ENDIF
	call	Math16_div__V
	movf	Math16_bLo,0
	movwf	_Str_append_I_V_loc+2
;---- StringBuffer.java[37]
	movf	_Str_append_I_V_loc+0,0
	addlw	_Str_buffer                        ; add offset for getfield
	movwf	4
	movf	0,0                                 ; getfield
	movwf	_Str_append_I_V_tmp+0
	movf	_Str_append_I_V_loc+0,0
	addlw	_Str_slen                          ; add offset for getfield
	movwf	4
	movf	0,0                                 ; getfield
	movwf	_Str_append_I_V_tmp+1
	movf	_Str_append_I_V_tmp+1,0
	addlw	1
	movwf	_Str_append_I_V_tmp+2
	movf	_Str_append_I_V_loc+0,0
	addlw	_Str_slen                          ; add field offset
	movwf	4
	movf	_Str_append_I_V_tmp+2,0
	movwf	0                                  ; putfield
	movf	_Str_append_I_V_loc+2,0
	addlw	48
	movwf	_Str_append_I_V_tmp+2
	movf	_Str_append_I_V_tmp+0,0
	movwf	4
	movf	_Str_append_I_V_tmp+1,0
	addwf	4,1
	movf	_Str_append_I_V_tmp+2,0
	movwf	0
;---- StringBuffer.java[38]
	movf	Math16_cLo,0
	movwf	_Str_append_I_V_loc+1
;---- StringBuffer.java[39]
	movlw	10
	movwf	Math16_aLo
	movf	_Str_append_I_V_loc+1,0
	movwf	Math16_bLo
	clrf	Math16_aHi
	clrf	Math16_bHi
	IF ($ >> 10) != (Math16_div__V >> 10)
	pagesel	Math16_div__V
	ENDIF
	call	Math16_div__V
	movf	Math16_bLo,0
	movwf	_Str_append_I_V_loc+2
;---- StringBuffer.java[40]
	movf	_Str_append_I_V_loc+0,0
	addlw	_Str_buffer                        ; add offset for getfield
	movwf	4
	movf	0,0                                 ; getfield
	movwf	_Str_append_I_V_tmp+0
	movf	_Str_append_I_V_loc+0,0
	addlw	_Str_slen                          ; add offset for getfield
	movwf	4
	movf	0,0                                 ; getfield
	movwf	_Str_append_I_V_tmp+1
	movf	_Str_append_I_V_tmp+1,0
	addlw	1
	movwf	_Str_append_I_V_tmp+2
	movf	_Str_append_I_V_loc+0,0
	addlw	_Str_slen                          ; add field offset
	movwf	4
	movf	_Str_append_I_V_tmp+2,0
	movwf	0                                  ; putfield
	movf	_Str_append_I_V_loc+2,0
	addlw	48
	movwf	_Str_append_I_V_tmp+2
	movf	_Str_append_I_V_tmp+0,0
	movwf	4
	movf	_Str_append_I_V_tmp+1,0
	addwf	4,1
	movf	_Str_append_I_V_tmp+2,0
	movwf	0
;---- StringBuffer.java[41]
	movf	_Str_append_I_V_loc+0,0
	addlw	_Str_buffer                        ; add offset for getfield
	movwf	4
	movf	0,0                                 ; getfield
	movwf	_Str_append_I_V_tmp+0
	movf	_Str_append_I_V_loc+0,0
	addlw	_Str_slen                          ; add offset for getfield
	movwf	4
	movf	0,0                                 ; getfield
	movwf	_Str_append_I_V_tmp+1
	movf	_Str_append_I_V_tmp+1,0
	addlw	1
	movwf	_Str_append_I_V_tmp+2
	movf	_Str_append_I_V_loc+0,0
	addlw	_Str_slen                          ; add field offset
	movwf	4
	movf	_Str_append_I_V_tmp+2,0
	movwf	0                                  ; putfield
	movf	Math16_cLo,0
	addlw	48
	movwf	_Str_append_I_V_tmp+2
	movf	_Str_append_I_V_tmp+0,0
	movwf	4
	movf	_Str_append_I_V_tmp+1,0
	addwf	4,1
	movf	_Str_append_I_V_tmp+2,0
	movwf	0
;---- StringBuffer.java[42]
	return

;---- *** Message: Method _Str_append_J_V not used. No code generated.

;---- *** Message: Method _Str_append_C_V not used. No code generated.
interrupt
	movwf	_W_TEMP
	swapf	_STATUS,0
	movwf	_STATUS_TEMP
	movf	_ACC,0
	movwf	_ACC_TEMP
	movf	4,0
	movwf	_FSR_TEMP
	banksel	_ACC

	movf	_FSR_TEMP,0
	movwf	4
	movf	_ACC_TEMP,0
	movwf	_ACC
	swapf	_STATUS_TEMP,0
	movwf	_STATUS
	swapf	_W_TEMP,1
	swapf	_W_TEMP,0
	retfie
	end
